rem 编译安装 vim 软件。需要设置一下脚本前面的目录和python、lua版本号。

@echo off
chcp 65001 > nul

rem 每次编译须检查下面两个文件夹及后面的pythonVer、luaVer设置。
rem 每次编译须检查下面两个文件夹及后面的pythonVer、luaVer设置。
rem 每次编译须检查下面两个文件夹及后面的pythonVer、luaVer设置。
rem
rem 基础文件夹。改用环境变量 wsr
rem vim 仓库目录
set repo=D:\study\vim

rem 源代码目录
set src=%repo%\src

rem msys2 目录
set MSYS_HOME=%scoop%\apps\msys2-cn\current
rem 链接库目录
set bin=%MSYS_HOME%\mingw64\bin
rem 添加编译器路径
set PATH=%MSYS_HOME%\usr\bin;%PATH%
rem 添加链接库路径
set PATH=%bin%;%PATH%

rem 安装目录
set runtime=%wsr%\Program\Vim\runtime3
if exist %runtime% (
    rename %runtime% runtime3.bak
    rem rmdir /S /Q %runtime%
    if %errorlevel% neq 0 (
        echo 重命名 %runtime% 失败，请检查！按任意键退出！
        pause
        exit
    )
)

rem 切换到源代码目录
cd /d %src%
rem 先清理以前编译的残余
make -j8 -f make_ming.mak GUI=no clean
make -j8 -f make_ming.mak clean
rem 编译的选项
set pythonVer=313
set pythonPath=%scoop%/apps/Python/current
set luaVer=54
set luaPath=%scoop%/apps/lua/current
set options=^
    PYTHON3=%pythonPath%^
    PYTHON3_HOME=%pythonPath%^
    PYTHON3INC=-I%pythonPath%/include^
    DYNAMIC_PYTHON3_DLL=%pythonPath%/python%pythonVer%.dll^
    PYTHON3_VER=%pythonVer% DYNAMIC_PYTHON3=yes^
    LUA=%luaPath% DYNAMIC_LUA=yes LUA_VER=%luaVer%
rem 开始编译
make -j8 -f make_ming.mak GUI=no vim.exe %options%
if %errorlevel% equ 0 (
    echo 成功编译 vim.exe!
) else (
    echo 编译 vim.exe 发生错误!
    pause
    exit
)
make -j8 -f make_ming.mak %options%
if %errorlevel% equ 0 (
    echo 成功编译 gvim.exe!
) else (
    echo 编译 gvim.exe 发生错误!
    pause
    exit
)

echo 如果不想安装就直接关闭本窗口，按任意键会进行安装！
pause

rem 复制编译出的文件到安装目录
mkdir %runtime%
cd /d %repo%
xcopy /s runtime\* %runtime%
xcopy src\*vim*.exe %runtime%
xcopy src\tee\tee.exe %runtime%
xcopy src\xxd\xxd.exe %runtime%

rem 生成语言文件，使插入模式提示信息及标签菜单显示中文
cd /d %repo%
mkdir %runtime%\lang\zh_CN.UTF-8\LC_MESSAGES
mkdir %runtime%\lang\zh_CN\LC_MESSAGES
%bin%\msgfmt -o %runtime%\lang\zh_CN.UTF-8\LC_MESSAGES\vim.mo^
        src\po\zh_CN.UTF-8.po
%bin%\msgfmt -o %runtime%\lang\zh_CN\LC_MESSAGES\vim.mo src\po\zh_CN.po
rem 需要的库
xcopy "%bin%\libiconv-2.dll" %runtime%
xcopy "%bin%\libintl-8.dll" %runtime%

rem 复制链接库文件到运行目录。静态编译0就不需要复制这些库。
if 0==1 goto q
:copyLib
xcopy "%bin%\libstdc++-6.dll" %runtime%
xcopy "%bin%\libgcc_s_seh-1.dll" %runtime%
xcopy "%bin%\libwinpthread-1.dll" %runtime%
goto q

:q
rem 切换到源代码目录
cd /d %src%
rem 清理编译的残余
make -j8 -f make_ming.mak GUI=no clean
make -j8 -f make_ming.mak clean
echo "安装完成！"
pause
